home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1991 October / 64er_Magazin_91-10_1991_Markt__Technik_de_Side_B.d64 / tech-tech 2.src < prev    next >
Text File  |  2022-10-26  |  4KB  |  209 lines

  1. ; Tech-Tech - die zweite!
  2. ;------------------------
  3. ; (w) by Anonym of PADUA!
  4. ;        (Frank Michlick)
  5. ;------------------------
  6.  
  7. org $c000
  8.  
  9. ldx #0
  10. stx $d020
  11. stx $d021
  12.  
  13.      lda #$ff    ;Bildschirm mit neuem
  14. :clr sta $0400,x ;Leerzeichen ($ff)
  15.      sta $0500,x ;fuellen
  16.      sta $0600,x
  17.      sta $0700,x
  18.      inx
  19.      bne clr
  20.  
  21. :store txa         ;Matrix der Grafik
  22.        sta $0478,x ;auf den Bildschirm
  23.        lda #$0b    ;schreiben und die
  24.        sta $d878,x ;Farben setzen
  25.        inx
  26.        cpx #6*40
  27.        bne store
  28.        lda #$06
  29.        sta $d022
  30.        lda #$0e
  31.        sta $d023
  32.  
  33.        sei
  34.        lda  #$81   ; IRQ-Initialisierung
  35.        sta  $d01a
  36.        lda  #0
  37.        sta  $dc0e
  38.        lda  #$7f
  39.        sta  $dc0d
  40.        lda  #$1b
  41.        sta  $d011
  42.        lda  #$3f
  43.        sta  $d012
  44.        lda  #<irq
  45.        ldx  #>irq
  46.        sta  $0314
  47.        stx  $0315
  48.        cli
  49. :back jmp  back ; endlosschleife
  50.  
  51. :irq    ldy #$3f   ;Zuerst Ausgleich
  52.         cpy $d012  ;von Rasterstrahl-
  53.         bne irq    ;ungenauigkeiten
  54.         ldx #$10   ;
  55. :delay1 dex        ;(siehe Profi-Corner
  56.         bne delay1 ; in 1/91)
  57.         iny
  58.         cpy $d012
  59.         nop
  60.         beq skip1
  61.         cmp $00
  62.         nop
  63. :skip1  ldx #9
  64. :delay2 dex
  65.         bne delay2
  66.         iny
  67.         nop
  68.         nop
  69.         cpy $d012
  70.         nop
  71.         beq skip2
  72.         cmp $00
  73. :skip2  ldx #10
  74. :delay3 dex
  75.         bne delay3
  76.         iny
  77.         cpy $d012
  78.         bne next
  79.  
  80. :next bit $00     ; warten, bis der
  81.       nop         ; Rasterstrahl die; richtige Start-
  82.       nop         ; position erreicht
  83.       nop
  84.       nop
  85.       nop
  86.       nop
  87.       nop
  88.       nop
  89.       nop
  90.       nop
  91.       nop
  92.       nop
  93.       nop
  94.       nop
  95.       nop
  96.       nop
  97.       nop
  98.       nop
  99.       nop
  100.       nop
  101.       nop
  102.       ldx #0
  103. :loop jsr timeit  ; Die Register
  104.       jsr timeit  ; $d018 und $d016
  105.       jsr timeit  ; immer an der
  106.       jsr timeit  ; richtigen Stelle
  107.       jsr timeit  ; beschreiben
  108.       jsr timeit
  109.       nop
  110.       lda chars,x
  111.       ldy wave,x
  112.       sta $d018
  113.       inx
  114.       bit $eaea
  115.       sty $d016
  116.       nop
  117.       nop
  118.       nop
  119.       nop
  120.       lda chars,x
  121.       sta $d018
  122.       lda wave,x
  123.       sta $d016
  124.       bit $eaea
  125.       inx
  126.       nop
  127.       nop
  128.       nop
  129.       nop
  130.       nop
  131.       nop
  132.       nop
  133.       nop
  134.       nop
  135.       nop
  136.       nop
  137.       nop
  138.       cpx #$38 ; fertig?
  139.       bne loop ; die naechsten 8 Zeilen
  140.  
  141.       lda chars     ;Bewegung der beiden
  142.       sta $fa       ;Tabellen nach oben
  143.       lda wave
  144.       sta $fb
  145.       ldx #0
  146. :move lda chars+1,x
  147.       sta chars,x
  148.       lda wave+1,x
  149.       sta wave,x
  150.       inx
  151.       cpx #$38
  152.       bne move
  153.       lda $fa
  154.       sta chars+$37
  155.       lda $fb
  156.       sta wave+$37
  157.  
  158.       lda #$3f   ; Abschluss
  159.       sta $d012
  160.       inc $d019
  161.       jmp $febc
  162.  
  163. :timeit nop         ;Unterroutine
  164.         nop         ;zum exakten
  165.         nop         ;Timimg der
  166.         nop         ;Rasterzeilen
  167.         lda wave,x
  168.         sta $d016
  169.         bit $eaea
  170.         lda chars,x
  171.         sta $d018
  172.         inx
  173.         bit $00
  174.         nop
  175.         nop
  176.         nop
  177.         nop
  178.         nop
  179.         nop
  180.         nop
  181.         nop
  182.         nop
  183.         rts
  184.  
  185.       ;Tabellen fuer die Verschiebung
  186.  
  187.  ; $d016-Tabelle
  188.  
  189. :wave
  190.   b $1e,$18,$1a,$1c,$1d,$1e,$1f,$18
  191.   b $19,$1a,$1b,$1b,$1c,$1c,$1d,$1d
  192.   b $1e,$1e,$1e,$1e,$1f,$1f,$1f,$1f
  193.   b $1f,$1f,$1f,$1f,$1e,$1e,$1e,$1e
  194.   b $1d,$1d,$1c,$1c,$1b,$1b,$1a,$19
  195.   b $18,$1f,$1e,$1d,$1c,$1a,$18,$1e
  196.   b $1c,$1a,$19,$18,$18,$19,$1a,$1c
  197.  
  198.  
  199. ; $d018-Tabelle
  200.  
  201. :chars
  202.   b 24,26,26,26,26,26,26,28
  203.   b 28,28,28,28,28,28,28,28
  204.   b 28,28,28,28,28,28,28,28
  205.   b 28,28,28,28,28,28,28,28
  206.   b 28,28,28,28,28,28,28,28
  207.   b 28,26,26,26,26,26,26,24
  208.   b 24,24,24,24,24,24,24,24
  209.